Активно использую в алго ML модели. При обучении моделей тоже есть свои фишки и с точки зрения защиты от оверфиттинга и в целом. Поэтому часто обучаю по несколько моделей в одном скрипте. Это и параметры разные и участки данных разные и т.д.
Когда скрипты уже отлажены ты просто их гоняешь, оцениваешь результаты, принимаешь решения. Часто при этом в голове всплывают неотвеченные вопросы, одни помечаешь себе, другие нет. Одними из таких вопросов были: это модель хреновая или OOS неудачный для модели, или в целом неудачный, а есть для него удачная модель, а для удачной модели есть неудачные участки данных тоже? В общем если убрать за скобки ML – классическая тема про переоптимизацию про то, что рынок может благоприятствовать стратегии (а скорее целому классу стратегий), а может нет. Но как с этим у моделей обстоит. В общем до этого момента только фантазировал на эту тему, закрыть вопрос через исследование было не сложно, но как-то руки не доходили, а теперь дошли.
Что делал: условно, взял много данных, единое признаковое пространство, по-всякому нарезал данные таким образом чтобы разные модели обучались на разных участках данных и было так же сопоставимое с кол-вом моделей кол-во OOS участков. Убедился, что OOS в конкретной паре модель-OOS не участвовал в обучении данной модели и погнал тестить разные модели на разных OOS кусках.
Текущее экспериментальное направление рисеча в алго – графические паттерны. Формализовал и алгоритмизировал выявление нескольких паттернов. Они в таком сыром виде работают, но не космос. Чтобы было космосее формализовал и алгоритмизировал выделение фичей (они же параметры, они же метрики, свойства – как хотите) паттерна. Ну т.е. паттерн-то он паттерн, но конкретные матчи (кейсы) они же все разные, а чем они разные? – Вот в частности значениями этих фичей. По сути, я ушел на следующий уровень абстракции (сам паттерн – первый уровень, его характеристики – второй). Ну и чтобы работать со свойствами паттерна было удобней традиционно поверх небольшим слоем размазал ML.
Текущие сложности в этом направлении:
— В моей формализации долго (относительно) ищутся паттерны на окне (зависит от размера окна), поэтому, в частности, насобирать большую выборку для ML долго, а на небольшой, например, много фичей паттерна сразу не оценишь на профпригодность. Для торговли скорости приемлемые если не слишком малые ТФ и не слишком много тикеров одновременно.
Часто тут пишу про Wealth-Lab. Сейчас это значимая часть моей алго-инфраструктуры. Но ни разу даже картинки Велс-Лаба не показал)). Пришло время все исправить. Покажу новый велс и немного приподниму вуаль, защищающую мой подход и мой алгоритмический флоу (как тэщщу, где беру идеи, как оптимизирую, как выбираю значения параметров и т.д.).
Базовый флоу на Wealth-Lab 7.
Кодим стратегию.
В начале Initialize видно, как удобно организована работа с таймсериями в векторном стиле.
Можно и без кода стратегию запилить.
Итак, граждане-трейдеры, сбор средств для финансирования создания коннектора между Wealth-Lab 7 и широко известной в узких кругах программой Quik продолжается.
Ранее анонс был сделан здесь:
https://smart-lab.ru/blog/740754.php
Итак, проект стартанул, в смысле не только сбор средств, но и разработка. Проект уже профинансирован на 60К рублей. Узнать детали, подробности, жарки сплетни, слухи, посмотреть короткие видосики где «о, оно уже шевелится!» можно в чате проекта: https://t.me/joinchat/v8SwzUrLLChkMjE6. Коннектор будет включать в себя модуль получения стриминг данных, исторических данных, а так же модуль работы со счетами и заявками. На текущий момент уже работает получение свечей в реальном времени и кое что ещё.
Немного про Wealth-Lab 7 (будем называть его для краткости WL7), зачем он, что он, что он может и чего он не может. Где-то может буду повторять то, что уже говорил, ну ничего.
Про WL7 тезисно:
— WL7 мощный, гибкий. Программа специализируется на бэктестинге, рисёче и в этой области её возможности огромны и постоянно расширяются. Если же вам чего-то не хватает или нужно что-то специфичное, то во-первых программа активно расширяется (например, на их youtube канале можно посмотреть как часто выходят видео про новые обновления и как наполнены они новыми фишками: https://www.youtube.com/c/WealthLabSupport/videos ). Во-вторых, у WL7 открытый API интерфейс (
Надо вносить разнообразие с рабочий процесс. Однотипные кучно лежащие задачи утомляют, творческая энергия уходит на нули, нужно вносить разнообразие, миксовать задачи по типам. Чтобы локально разжечь творческое пламя нужно было на время отложить очень нужное, полезное и нудное и замутить что-то творческое безумное с непрозрачными перспективами и отдачей. Подвернулась мысль запилить генератор паттернов, он же майнер паттернов, он же рисёчер паттернов. На коленке на питоне написал. Много брутального перебора, мало векторизации, работает очень неспешно, особенно если настройки включить не лишь бы что, а нормальные.
В общем молотить числа эта штука может бесконечно, даже если не уходить на младшие таймфреймы где данных на порядки больше. Оно и хорошо – запускаешь эту штуковину в работу и есть ощущение, что теперь вас двое дата-майнит – ты свои стратегии, а бездушная машина (по совместительству твой новый компаньон) – паттерны. Психологические интересное нововведение, теперь не стыдно перед собой за какие-то небольшие простои и отдыхать можно смело, ведь неутомимая машина шуршит единицами в поисках грааля.